FIG. 1 illustrates a conventional disk drive system 100 in block diagram form. The disk drive system 100 is operative for performing data storage and retrieval functions for an external host computer 102. The disk drive system 100 includes: a disk 104, a transducer 106, an actuator assembly 108, a voice coil motor (VCM) 110, a read/write channel 112, an encoder/decoder (ENDEC) 114, an error correction coding (ECC) unit 116, a data buffer memory 118, an interface unit 120, a servo unit 122, and a disk controller/microprocessor 124.
In general, disk 104 includes a pair of disk surfaces (a disk surface 242 is shown in FIG. 2) which are coated with a magnetic material that is capable of changing its magnetic orientation in response to an applied magnetic field. Data is stored digitally in the form of magnetic polarity transitions (frequently referred to as pulses) within concentric tracks on one or more of the disk surfaces. The disk 104 is rotated at a substantially constant spin rate by a spin motor (not shown) that is speed-controlled by a closed-loop feedback system. Instead of the single disk 104 shown in FIG. 1, the disk drive system 100 can include a plurality of disks all mounted on a single spindle and each serviced by one or more separate transducers.
The transducer 106 is a device that transfers information from/to the disk 104 during read and write operations. The transducer 106 is positioned over the disk 104, typically, by a rotary actuator assembly 108 that pivots about an axis under the power of the VCM 110. During a write operation, a polarity-switchable write current is delivered to the transducer 106 from the read/write channel 112 to induce magnetic polarity transitions onto a desired track of the disk 104. During a read operation, the transducer 106 senses magnetic polarity transitions on a desired track of the disk 104 to create an analog read signal that is indicative of the data stored thereon. Commonly, the transducer 106 is a dual element head having a magnetoresistive read element (or giant magnetoresistive read element) and an inductive write element.
The VCM 110 receives movement commands from the servo unit 122 for properly positioning the transducer 106 above a desired track of the disk 104 during read and write operations. The servo unit 122 is part of a feedback loop that uses servo information from the surface of the disk 104 to control the movement of the transducer 106 and the actuator assembly 108 in response to commands from the controller/microprocessor 124.
During a read operation, the channel 112 receives the analog read signal from the transducer 106 and processes the signal to create a digital read signal representative of the data stored on the disk 104. Typically, detection circuitry is included in the channel 112. The channel 112 may also include means for deriving timing information, such as a read clock, from the analog signal.
The ENDEC 114 is operative for: (1) encoding data being transferred from the host 102 to the disk 104, and (2) decoding data being transferred from the disk 104 to the host 102. Data being written to the disk 104 is encoded for a number of reasons, including those relating to timing and detection concerns. The ENDEC generally imparts a run length limited (RLL) code on the data being written to the disk 104 to ensure that the frequency of transitions in the bit stream does not exceed or fall below predetermined limits. Such coding ensures that, among other things, enough transitions exist in the read data to maintain an accurate read clock. Other coding schemes may also be employed in the ENDEC 114.
The ECC unit 116 is operative for adding redundant information to the data from the host 102 before that data is encoded in the ENDEC 114 and written to the disk 104. This redundant information is used during subsequent read operations to permit discovery of error locations and values within the decoded read data. Errors in the read data detected by the ECC unit 116 can result from any number of mechanisms, such as: (1) media noise due to media anomalies, (2) random noise from the transducer, cabling and electronics, (3) poor transducer placement, which reduces signal amplitude and/or increases adjacent track noise during the read operation, (4) poorly written data due to media defects or poor transducer placement, and/or (5) foreign matter on the media or media damage. ECC units are generally capable of correcting up to a predetermined number of errors in a data block. If more than the predetermined number of errors exist, then the code will not be able to correct the errors but may still be able to identify that errors exist within the block. ECC functionality is generally implemented in a combination of hardware and software.
The data buffer memory 118 is used to temporarily store data for several purposes: (1) to permit data rates that are different between the disk drive and the host interface bus, (2) to allow time for the ECC system to correct data errors before data is sent to the host 102, (3) temporary parameter storage for the controller/microprocessor 124, and (4) for data caching.
The interface 120 is used to establish and maintain communication between the host 102 and the disk drive system 100. In this regard, all information is transferred into and out of the disk drive 100 through the interface 120.
The disk controller/microprocessor 124 is operative for controlling the operation and timing of the other elements of the system 100. In addition, the controller/microprocessor 124 may perform the functions of some of the elements of the system. For example, the controller/microprocessor 124 may perform the correction computation function of the ECC unit 116 if errors exceed the capability of the hardware based unit.
FIG. 2 is a diagrammatic representation of a simplified top view of a disk 104 having a surface 242 which has been formatted to be used in conjunction with a conventional sectored servo system (also known as an embedded servo system), as will be understood by those skilled in the art. As illustrated in FIG. 2, the disk 104 includes a plurality of concentric tracks 244a–244h for storing data on the disk's surface 242. Although FIG. 2 only shows a relatively small number of tracks (i.e., 8) for ease of illustration, it should be appreciated that typically many thousands of tracks are included on the surface 242 of a disk 104.
Each track 244a–244h is divided into a plurality of data sectors 246 and a plurality of servo sectors 248. The servo sectors 248 in each track are radially aligned with servo sectors 248 in the other tracks, thereby forming servo wedges 250 which extend radially across the disk 104 (e.g., from the disk's inner diameter 252 to its outer diameter 254). The servo sectors 248 are used to position the transducer 106 associated with each disk 104 during operation of the disk drive 100. The data sectors 246 are used to store customer data, which is provided by the host computer 102.
As mentioned above, all information is transferred into and out of the disk drive 100 to the host 102 via interface 120. As depicted in FIG. 3, conventionally, data is transferred from the host computer 102 to the disk drive 100 in fixed data sizes known as host blocks 300. Typically, a host block 300 ranges in length from 128 bytes to 4096 bytes, with 512 bytes being most common.
With reference to FIG. 4, conventionally, data is stored onto the surface 242 of disk 104 in fixed data sizes known as disk blocks 400. As shown in FIG. 4, each disk block 400 may have an error correction (ECC) field 402 associated with it. Furthermore, in order to store and retrieve a disk block 400 onto the disk surface 242, a pre-data field 404 and a post-data field 406 are typically provided for each disk block 400. The combined pre-data field 404, disk block 400, ECC field 402 and post-data field 406 comprise a disk sector 408, which is stored on the disk surface 242 in a data sector 246.
There may be many disk sectors 408 in each data sector 246. Generally, there are more disk sectors 408 in tracks near the outer diameter of the disk surface as compared to tracks near the inner diameter of the disk surface.
Because each disk sector 408 may be identified by a unique logical block address (LBA), commonly disk sectors are referred to as LBAs. FIG. 5 is a simplified diagrammatic representation of a portion of a disk surface 542 in linear rather than arcuate form.
FIG. 5 shows a plurality of tracks (Track N to Track N+6 are shown), wherein each track extends horizontally across the page (i.e., in the disk's circumferential direction). Each track also includes servo sectors (servo sectors 548a and 548b are shown), which extend vertically along the page (i.e., in the disk's radial direction), and data sectors (only one data sector 546 is shown).
Within each data sector along a track, a plurality of LBAs 560 are provided. Typically, the LBAs 560 are slightly separated from one other along a track (i.e., in a circumferential direction). Furthermore, LBAs 560 are also typically separated from one another in a radial direction.
It should be understood that FIG. 5 is an extreme simplification and is being used in order to more easily illustrate the present invention. Those skilled in the art will understand that LBAs from track-to-track (i.e., in a radial direction) are not necessarily aligned with one another. Furthermore, LBAs in a circumferential direction may be split by servo sectors 548, such that a first portion of an LBA may appear on a first side of a servo sector and a second portion of an LBA may appear on a second side of the servo sector.
Those skilled in the art also understand that there are a number of types of interfaces that may be employed for communicating data between the host computer 102 and the disk drive 100. These interfaces may include, for example, an advanced technology attachment (ATA) interface (also known as an integrated device electronics (IDE) interface), small computer system interface (SCSI), a fibre channel (FC) interface, a gigabit interconnect (GBIC) interface and a peripheral component interconnect (PCI) interface, among others. The length of the host block 300 (and, hence LBA) is determined by the particular interface that is used.
In some interfaces, the size of the host block 300 is fixed. For, example, IDE interfaces require the host block 300 to have a length of 512 bytes. Other interfaces, however, (e.g., SCSI and FC interface) support host blocks 300 having variable lengths. In such interfaces, the length of the host block 300 may be programmed by a user.
Computer disk drive users often store confidential information on their disk drives. For example, home-based users may store tax information including social security numbers, bank account numbers, and the like on their disk drives. Furthermore, in a business environment, confidential business files may also be stored on disk drives.
For obvious reasons, when disk drives are to be disposed of or are to be reused, it is important to “erase” or “wipe-out” (more properly, “overwrite”) confidential information therefrom. However, many users don't take any steps to overwrite any of the information stored in their disk drives prior to disposing of their disk drives or making disk drives available for reuse. Accordingly, the confidential data stored on their disk drives is at risk.
One prior technique is to overwrite the file allocation tables associated with each disk surface, without overwriting the user data in the LBAs 560. However, software programs are available which allow user data to be read on an LBA-by-LBA basis. Accordingly, such prior technique still leaves confidential user data at risk.
In another prior technique, a software program is used to overwrite each and every LBA 560 with non-confidential data (e.g., using random data patterns or predetermined data patterns). However, the processes associated with software program are quite time-consuming.
More specifically, LBAs 560 along a particular track are overwritten (i.e., in a circumferential direction). Then, after moving to a next track (or fraction of a track), LBAs along the next track (or fraction of a track) are overwritten. This process is repeated until substantially all LBAs containing user data have been overwritten. Importantly, no writing is performed while the transducer is moving from a first track to a second track. Instead, writing is only performed after the transducer has settled on a track.
Accordingly, as the number of tracks per inch (TPI) continues to increase and as the number of bits per inch (BPI) continues to increase, the amount of time necessary to overwrite each LBA on a disk surface will continue to increase. Among other things, this may further discourage users to overwrite confidential information on their disk drives.
Therefore, it would be desirable to develop relatively fast technique for overwriting user data in a disk drive. By providing a fast technique for overwriting user data in a disk drive, users may be encouraged to overwrite confidential information stored on their disk drives, thereby reducing the likelihood of such confidential data being compromised.